A web service is a method of communication between two electronic devices in a networked environment, such as the internet. More particularly, a web service is a software system designed to support interoperable machine-to-machine interactions over a network. A web service has an interface described in a machine-processable format (e.g., Web Services Description Language or WSDL). Other systems interact with the web service in a manner prescribed by its description using Simple Object Access Protocol (SOAP) messages, typically conveyed using Hypertext Transport Protocol (HTTP) with an Extendable Markup Language (XML) serialization in conjunction with other Web-related standards.
Google® has a web service that provides weather information for a specified locale. The web service call http://www.google.com/ig/api?weather=seattle produces the following results.
  <?xml version=″1.0″ ?>- <xml_api_reply version=″1″>- <weather module_id=″0″ tab_id=″0″ mobile_row=″0″   mobile_zipped=″1″ row=″0″ section=″0″>- <forecast_information> <city data=″Seattle, WA″ /> <postal_code data=″seattle″ /> <latitude_e6 data=″″ /> <longitude_e6 data=″″ /> <forecast_date data=″2012-06-20″ /> <current_date_time data=″2012-06-20 19:53:00 +0000″ /> <unit_system data=″US″ />  </forecast_information>- <current_conditions> <condition data=″Clear″ /> <temp_f data=″68″ /> <temp_c data=″20″ /> <humidity data=″Humidity: 49%″ /> <icon data=″/ig/images/weather/sunny.gif″ /> <wind_condition data=″Wind: NW at 14 mph″ />  </current_conditions>- <forecast_conditions> <day_of_week data=″Wed″ /> <low data=″54″ /> <high data=″73″ /> <icon data=″/ig/images/weather/mostly_sunny.gif″ /> <condition data=″Mostly Sunny″ />  </forecast_conditions>- <forecast_conditions> <day_of_week data=″Thu″ /> <low data=″55″ /> <high data=″81″ /> <icon data=″/ig/images/weather/mostly_sunny.gif″ /> <condition data=″Mostly Sunny″ />  </forecast_conditions>- <forecast_conditions> <day_of_week data=″Fri″ /> <low data=″54″ /> <high data=″64″ /> <icon data=″/ig/images/weather/chance_of_rain.gif″ /> <condition data=″Chance of Showers″ />  </forecast_conditions>- <forecast_conditions> <day_of_week data=″Sat″ /> <low data=″52″ /> <high data=″61″ /> <icon data=″/ig/images/weatherichance_of_rain.gif″ /> <condition data=″Chance of Rain″ />  </forecast_conditions>  </weather>  </xml_api_reply>The foregoing web service results have an ad hoc structure. The results include information, such as the forecast date, the current time, condition data, the temperature in Fahrenheit, the temperature in Centigrade, humidity data, wind condition data, a low temperature for the day, and the high temperature for the day. Similar data is provided for subsequent days of the week.
A user accessing this data may want a subset of the data and may want it formatted in a certain manner. Such customization is possible for a technically proficient individual, but is not practical for most computer users.
Tools have been developed that allow non-technical computer users to specify a workflow to accomplish a data processing task. A workflow is a computer controlled sequence of connected workflow actions. A workflow action is a computer controlled operation on one or more inputs to produce one or more outputs. Thus, a workflow action is a unit of work, such as connecting to a data source, performing a data transformation or initiating an interaction, such as granting approval or providing other forms of data.
A defined workflow is a user specified workflow. For example, a canvas may be used to graphically represent connected workflow actions forming a defined workflow.
The defined workflow may be operated in a closed domain of an enterprise. A closed domain is a private network. The private network may maintain privacy through controlled connections and/or through the use of an enterprise firewall. An open domain is a public network, such as the publicly accessible internet. An open domain has shared connections and observes various communication protocols.
Since an enterprise may operate in a closed domain, it is possible to control communication protocols and otherwise provide interoperability between components in the enterprise. A defined workflow may be formed with enterprise workflow actions. In such a case, the workflow is controlled by the enterprise to insure interoperability between workflow actions.
There are many resources outside a closed domain. That is, the open domain has a practically unlimited store of information. Much of this information is available through web services. Unfortunately, it is difficult to incorporate this open domain information into closed domain systems because of incompatible protocols and formats. As demonstrated with the exemplary method call above, information returned from a call to a web service may have an unruly format and may include information of no value to a user.
In view of the foregoing, it would be desirable to provide techniques to allow technically unsophisticated computer users to define workflows. More particularly, it would be desirable to provide tools to allow such users to create a defined workflow with enterprise workflow actions and open domain workflow actions. Ideally, enterprise style management and control features would be added to the open domain workflow actions so that they could be added to workflows in the same way as enterprise workflow actions.